﻿using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using POS.BusinessComponents;
using POS.BusinessEntities;
using POS.DataObjects;
using Rhino.Mocks;

namespace POS.BusinessComponentsTest
{   
    [TestClass]
    public class BCImpuestoTest
    {
        #region Declarations

        private readonly MockRepository mocks = new MockRepository();
        private const int EmpresaId = 1;

        #endregion

        #region Test Methods

        [TestMethod]
        public void GetImpuestoList()
        {
            var dummyFilter = "dummy";
            var doMock = (DOImpuesto)mocks.StrictMock(typeof(DOImpuesto));
            var expected = new List<BEImpuesto>();
           
            Expect.Call(doMock.GetList(EmpresaId, dummyFilter)).Return(expected).Repeat.Once();

            doMock.Replay();
            new BCImpuesto(doMock).GetList(dummyFilter);
            doMock.VerifyAllExpectations();
        }

        [TestMethod]
        public void SaveImpuesto()
        {
            var dummyEntity = new BEImpuesto();
            var user = "testUser";

            var doMock = (DOImpuesto)mocks.StrictMock(typeof(DOImpuesto));
            doMock.Save(dummyEntity, EmpresaId, user);
            LastCall.IgnoreArguments();
            mocks.ReplayAll();
            new BCImpuesto(doMock).Save(dummyEntity);
            mocks.VerifyAll();
        }


        #endregion
    }
}
